package hyy_2022;

import commons.TreeNode;

/**
 * mirrorTree
 */
public class _0812_Offer27_MirrorTree {


    /**
     * 递归求解
     * 1、从根节点开始,递归地对树进行遍历,并从叶子节点先开始翻转得到镜像
     * 2、如果当前遍历到的节点root的左右两颗子树都已经翻转得到镜像,需要交换两颗子树的位置,即可得到以root为根节点的整棵子树的镜像
     * @param root
     * @return
     */
    public TreeNode mirrorTree(TreeNode root) {
        if(root == null) {
            return  null;
        }
        TreeNode left = mirrorTree(root.left);
        TreeNode right = mirrorTree(root.right);
        root.left = right;
        root.right = left;
        return root;
    }
}
